#include <stdio.h>
#include <stdlib.h>
// gcc test_heap.c -o test_heap
int main() {
    size_t size = 1; // 初始大小（单位为int个数）
    int *arr;

    printf("Testing heap allocation...\n");
    while (1) {
        arr = (int *)malloc(size * sizeof(int));
        if (arr == NULL) {
            printf("Failed to allocate array of size: %zu ints (%.2f GB)\n", size, size * sizeof(int) / (1024.0 * 1024.0 * 1024.0));
            break;
        }
        free(arr); // 释放内存
        size *= 2; // 每次增加一倍大小
    }

    return 0;
}
